说点面试真相
本文作者
作者:徐宜生
本文由作者授权发布,转载自「群英传」。
稳住今天是周日,节假日。
这篇文章是徐宜生老师写的,准确来说两篇,我把讲面试官和面试者两篇合并了,这样不管你是面试官还是面试者都能有一定的收获。
这两篇文章我都仔细阅读了,我在公司偶尔也负责公司的一些面试,感觉被戳到了心窝子,说的非常中肯,有些细节的心理都描述到了,大家可以仔细读读。
这个系列,来跟大家谈一谈面试。
作为一个面试者,我找过工作,也被别人面试过,作为一个面试者,我也面试过很多人,相信这两年开始,很多人都有这样的抱怨,移动端开发者越来越少,一个职位经常要招半年都找不到一个合适的人选,究其原因,到底是什么呢?
这个系列,就将和大家一起,聊一聊面试和面试,这是本系列的第一篇,我们先站在面试官的角度上来看看,我们都是怎么面试的。
首先,面试是一个双向的过程,你在面试别人的时候,实际上你也在被别人面试,怎么说呢,一般来说,团队在招人的时候,都会让一些比较资深的成员来作为面试官,面试者在跟面试官交流的时候,实际上就能大概了解到互相的一个技术水平、沟通能力等等,对于面试者来说,面试官的水平,几乎代表着团队的水平,如果在面试者面前丢了人,大概率团队也是比较丢人的,所以,双向选择面前,人人平等。
所以,面试官的自我修养就很重要,这是一个团队的脸面,那么我们团队到底需要招什么样的人呢?
首先,面试官要牢记一个观点,你是招人,不是招神。
是人,就会有缺点,换句话说,真正完美的开发者,也不会来你的团队了。
所以,团队招人之前,需要对团队进行一次审视,我们团队要招的人,究竟是怎样一个人,能力需要多少,是能干活就行,还是需要独当一面,是非常有潜力,还是已经很资深,是对业务开发无所不知,还是对技术有深度钻研,在了解了这些要素之后,再去面试,这个时候,你再看面试者,可能就不是满眼都是缺点了,我们需要的不是完美的求职者,我们需要的是最合适的求职者。
其次,面试官,应该提高提问的水平,因为很有可能你的提问让求职者反向选择了。
第一要素,避免问「八股文」,茴香豆的茴有几种写法。这样的问题没有意义,每个人的知识点都不是完整的,很可能碰到盲区或者遗忘的地方,这些问题应该改成更具有深度的问题,例如,不应该问「单例模式有几种写法」,而应该问:
你一般如何来实现单例?
这样的实现是否考虑了线程安全?
如果一定要用懒汉式单例,那么如何保证线程安全?
我有这样一个使用场景,你要如何设计一个单例模式?
尽量问一些渐进式的问题,诱导面试者一步步思考,很多时候,面试官并不是要一个答案,而是想听听面试者思考的过程。
这里可以看看之前网上流传的一道很火的华为面试题:一头牛重800公斤一座桥承重700公斤问牛怎么过桥?
一看这个问题就很懵逼,什么玩意儿?
冷静的想一想,结果不重要,面试官想要的是你思考的过程,你会怎么回答?
首先,了解下牛过桥的需求具体是什么,过桥是要活牛还是死牛?是要吃牛肉,还是单纯没事闲着蛋疼?
如果可以是死牛或者是要吃牛肉,那就好办了,分解了运过去即可,或者说,能否在桥对面寻找替代牛?
如果是要活牛,那么现在的问题就是800kg和700kg的问题,要么压缩牛,要么加强桥。
所以针对这两个方面,我们可以考虑如何减轻牛的重量,比如来个热气球?让牛减个肥?发明量子传送通道?
而针对桥这个方面,我们可以考虑能否临时对桥进行加固,或者造个新桥?
剩下的内容无非是会议纪要,方案评审,立项,开发,上线,总结。
淦!这不就是我们平时和产品经理的对话?看来这个面试官平时被产品经理折腾的挺惨。
面试官的问题,通常都是带有很强的目的性的,听懂问题的言外之意,精准的戳中要害,比长篇大论讲一堆不着边际的答案要好的多。
这一点其实很考验面试者的情商,要知道,很多言外之意,它之所以被称之为言外之意,那就是它真的不太能被人听明白,不识庐山真面目,只缘身在此山中,很多时候,面试官觉得他已经把这个问题的言外之意点的很明白了,但是面试者依然一脸茫然不知道是什么意思,这里面可能有面试官的问题,也可能有面试者的问题,总之,这是一个双向选择的过程。
例如下面这个问题——现在有一个功能模块,是之前的同事遗留的陈年老代码,现在有个新的需求要在这个基础上进行开发,讲讲你的开发思路。
这个问题看上去很懵逼,不知道要干啥,但仔细想想,我们能提取出几个关键词:
陈年老代码:不用问,这就是坑,危若累卵的坑。
新需求:可能明天就要上线,很急,在线等。
所以,面试官是不是想看看面试者,怎么处理这种场景的问题呢?
对于这种问题,我一般上来就重构,垃圾老代码,都是一坨屎,老夫写代码,就是一把梭,垃圾统统都要干掉。
面试官碰到这样的回答会怎么想呢?卧槽,这是要P0事故的节奏啊,老代码虽然老,但是线上跑了N年没出锅啊,为了一个新的需求,直接全部重构,这风险,完全不可控,而且面试者解决问题的思路不清晰,没有轻重缓急,即使技术很牛逼,作为面试官,也要捏一把汗。
首先,我会先把这部分的代码逻辑理清楚。
然后看新需求是否能够在老代码的基础上完成。
如果能完成,那么优先完成需求,然后向团队提出建议,对这块代码进行适当的重构。
如果不能完成,那么需要跟团队Leader讲清楚原因,争取更多的资源来完成这个需求。
正合我意。
❝面试者碰到没读懂的言外之意,也不要怪面试官,毕竟中文博大精深,面试官很可能是站在自己的立场上来看待问题,所以有些隐晦也是正常的,一个有经验的求职者,这个时候最好的办法就是提问,诱导面试官将问题具体化,让言外之意,不经意间浮出水面。
❞
越是高级别的面试,越是要深思熟虑后再回答,因为面试官越是高级,言外之意,可能也更加意味深长。
面试真的也是一个看运气的过程,碰到的面试官话不投机半句多,这是运气,职位空缺半年,急招,所以减低了一些要求,这也是运气,面试的内容正好做过、看过,这也是运气,有时候你面试不过,也许不是你自己的问题,很可能是运气的问题,还是那句话,双向选择。
面试者虽然经常被运气所玩弄,但这是不可避免的事情,我们能做的,就是当运气眷顾你时,完美的把握住这次运气。
打铁还需自身硬,当你足够强大时,全世界都会给你让路(让你去喝毒鸡汤)。
对程序员来说,实力的三大组成部分——经验、技巧和潜力。
经验
我有十年的Android开发经验,真的吗?想到一个段子,一个刚毕业2年的程序员,简历上写我有4年开发经验,为啥?因为加班。
这4年,每天你都有提高吗?每天都了解了你不知道的知识点吗?如果不是,那么这加班,又有何用,只是为了生存而加班,经验?不存在的。
你不是有十年经验,而是把一年经验,用了十年而已。
经验并不等价于工作年限,它是你实力的一个投影,多思考,多总结,才能让经验增加,重复的体力劳动,增加的只是你的年限,而不是经验。
技巧
技巧来源于有效的经验,它是你经验的精华,一个面试者的技巧越丰富,越熟练,那么会反过来让他的经验变得更加丰富。
我认为技巧一般分为两个部分——内功和外功。
内功主要是对技巧深度的研究程度,表现在你对一个疑难问题的排查、一个复杂需求的实现,而外功,表现在你技巧的广度,对解决方案提出最优技术选型,架构的设计能力等方面,在我前面的文章中,哦不对,还没写完,后面再补。
潜力
所谓潜力不错,可能是对你能力不足的一个美化修辞,这个一定要注意区分。
真正的潜力,主要体现在5年以内的求职者,再之后的潜力,就转化为经验和技巧了,工作的前几年,经验有限,这时候一个人的学习能力和思维能力,就是他潜力的体现。公司实际上是非常愿意招有潜力的求职者的,一方面可以以很便宜的价格,招到不错的打工人,另一方面,团队可以小小的花力气将他的潜力激发出来,这样相当于获取了一个经验技巧不错的求职者。
那么如何让自己显得有潜力呢?
腹有诗书气自华,潜力主要来源于你的思考力和思维力,这些能力会潜移默化的让你变得有潜力,所以,平时多思考,多阅读,才能不断提高自己的潜力。
在面试过程中,潜力具体表现在下面几点:
2、逻辑思维能力:做事情安排合理,分析问题有迹可循,解决问题能抓住重点。
前面说了,面试是一个双向选择的过程,除了面试者本身的这些硬条件外,还有些方面也是面试者需要注意的,这里简单的列举下。
尽可能选择现场面试、视频面试,避免电话面试,面对面的沟通往往是最高效的,不要因为沟通问题导致面试的失败。 注意细节,回答问题的时候,尽可能完善一些,比如边界条件,方案限制,树上的鸟有没有聋子。 面试者是一个被观察者,你的一举一动,都可能给你带来正面或者负面的影响,所以,如果你很重视这次面试的话,尽量稳重一点。
等等,讲了这么多,回到最初的问题,我们为啥要面试?
废话,当然是为了跳槽,那么为啥要跳槽,干的好好的,为啥要跳呢?
跳槽,无非是两点:
2、心不到位。
钱不到位很好理解,就像前面那个很有潜力的求职者,进公司培养一段时间后,潜力变成了经验和技巧,但是钱没跟上能力的涨幅,那么这个不到位就很好理解了,所以通过跳槽来寻求这种平衡,就自然而然了。
而心不到位,则是另一种情况,简单的说,就是在公司受委屈了,升职没通过,成果被人抢了,被背黑锅了,被同事、产品、测试、领导怼了...
说了这么多,在你鼓起勇气跟老板谈离职前,一定要先想清楚现在的状况,避免一时冲动,假戏真做了。
工资工作比
首先,要认清自己,认清环境。
在当前的社会中,特别是去年整个市场经济都不好,整体大环境处于比较差的局势,这时候冲动离职的结果,很可能就是长时间的空窗期,即使你特别特别想离职,人在屋檐下,有时候不得不低头,学一学司马懿的隐忍精神,都是成年人,当一当缩头乌龟又不会死(当然,这是针对老年人说的,年轻人就是要一把梭,那我也不反对)。
认清自己,是了解你目前的状态:
精神状态——是否能够适应加班,以及何种程度的加班
家庭状态——是否能够工作生活平衡,还是压根不需要平衡,以及通勤时间等等这些因素。
一个不加班月薪2w的工作,和一个加班疯狂月薪4w的工作,我相信每个人的选择都不一样,这就是工资工作比,把这些条件列出来,可以帮你更好的选择是跳槽,还是改变。
跳,必须跳
那么什么时候,可以说是必须跳槽的时候呢?
这个其实没有定论,我总结了一些方面,可能不全,也不一定对,博君一阅耳:
工资严重倒挂:工资倒挂其实很正常,因为通胀的原因,每年的新员工工资可能都比上次要高,如果你涨幅跟不上,就会出现倒挂,一旦这样恶性循环下去,钱和心,就都不到位了。
公司的发展受限:比如公司濒临破产,行业竞争力下降,导致业务下滑,这时候,如果你不是公司核心骨干,誓与公司共存亡,那么也可以跳了,毕竟不是核心的你,也无法左右公司的前景。
还有一种情况,比较特殊,那就是兴趣和激情。
如果你对每天的工作完全没有了任何激情,没有了任何兴趣,那也应该考虑是否要跳槽了,换个行业,或者是换个自己真的感兴趣的工作,是需要思考的问题,快乐学习、快乐工作,没有了波澜的生活,你和咸鱼有什么区别,一个理想的工作,就是每天做着自己真正喜欢的事,而且工资还不低。
❝国企事业单位这种铁饭碗除外,毕竟还要向生活低头。
❞
正视面试官
当你有了足够的能力,面试就自然不慌不乱了,这就跟考试一样,平时学的都掌握了,能力真实有效,上了考场也能游刃有余,特别是面试,比考试更简单,因为面试官也同样在被你面试,而且,面试官的压力也不一定比你小,面试的时候,他也会有很多担心:
这么久没招到人了,活都要没人干了。 是不是我的要求太高了? 这个人要是我过了,结果老板面了很不满意怎么办? 这人到底行不行,别来了让我背锅。 我的问题会不会被他鄙视啊,万一我记错了咋办。 这人太厉害了,万一来了把我挤下去怎么办。
你看,面试官的压力也不比你小多少。
掌握主动权
在面试过程中,一般有三个地方你可以获得主动权,把握好这三个地方,能为你的面试增光添彩。
自我介绍。
提问中反客为主。 最后的面试者提问。
鸿洋注:这里的反客为主,千万不要没事就反问面试官,那你给我讲怎么做。
在自我介绍中,一定要自信,不能上来就给面试官一种萎靡的感觉,可以简要的概括下你的工作经历,特别突出的亮点(意思就是让面试官重点关注这里),切忌复读简历上的东西以及与面试无关的废话,自我介绍不用多,这个时间面试官很可能就是来浏览你的简历的,所以,突出亮点,暗示面试官,快问这个吧,这个我牛逼。
如果你有一些特别出彩的地方,能让面试官一下子记住你,那就更好了,因为大部分时候,面试官都不记得你的名字,只记得,那个「写了两本畅销书的」、「那个头条的加班狂」、「那个一身肌肉的程序员」,这些标签,可以让你快速在面试官脑海里留下印象,第一印象建立好了,主动权就慢慢的掌握在自己手里了。
在提问中,面试者不一定是完全的被动者,在碰到一些不能回答的问题时,可以尝试反客为主,当然不是说:「我不知道,要么你来给我讲讲?」这样的话,而是将面试官引导到你的熟悉的场景来,例如:「这个问题我不太清楚,想问下这个问题的场景是什么,这个场景我的解决方案是什么」,这样将面试官引导到自己熟悉的战场,是一种很好的沟通策略。
而最后的面试者提问,是面试中的最后一步,但这最后一步,通常只是一个过场。
所以,这里不要问太尖锐的问题,比如「工资」、「我今天的面试表现」这样的问题。你可以问一些例如「职位的考核标准」、「团队的发展规划」这样的问题,特别是能给出一些对公司项目的建议、工作流程的优化等等,让面试官愉快的结束面试的同时,也让面试官能有一些收获,这样面试官对你的评价,自然会更上一层。
❝补充一点,回答问题,尽可能给出超出期待的回答,例如「Glide是如何管理内存图片的」,面试官可能只是想问你是否知道LRU算法,但是如果你不仅回答了LRU,还给出了Glide管理内存的整个策略(不要说太多,点到为止即可),这样就超出了面试官的预期,这是很好的加分。
❞
谈薪水
HR可精了。
和HR谈薪水就是一场心理博弈战,打不过打不过。
一般来说,涨幅在你上家工资流水的30%左右,HR一般会使用的套路就是:
画大饼:把未落实到合同的收益也算给你,或者是一些看不见的隐形福利。 算总包:把除工资以外的一些福利收入也算到base中,让你觉得base高了很多。 心理战:我们已经有其他候选人了,我们还有其他的面试者,你的面试情况一般,反正就是各种心理博弈。
咋破?合理的评估自己的面试表现,加上一些心理技巧(我不会),以及根据自己对这份工作和公司的取舍。
鸿洋注:我也不会。
最后推荐一下我做的网站,玩Android: wanandroid.com ,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!
推荐阅读:
点击 关注我的公众号
如果你想要跟大家分享你的文章,欢迎投稿~
┏(^0^)┛明天见!